Jump to content

User:Alexkachanov/Parallel Programming

From Wikipedia, the free encyclopedia

Hardware

[edit]
  • processors and cores


  • symmetric mutliprocessing (SMP) отмирает
  • non-uniform memory access (NUMA) -> NUMA nodes
  • Asymmetric Multiprocessing (ASMP)
  • Clustered Multiprocessing


  • hardware threads - software threads


  • shared memory multicore
  • distributed memory systems


  • chip multithreading (CMT) — one chip, many threads. Most multicore processors use a combination of multiple cores and multiple threads per core. The simplest example of this would be a processor with two cores with each core being capable of supporting two threads, making a total of four threads for the entire processor.


  • Flynn's taxonomy (1966)

Intel

[edit]
  • CMT - hyperthreading

UltraSPARC

[edit]
  • The UltraSPARC T2 is a good example of a CMT processor. It has eight replicated cores, and each core is capable of running eight threads, making the processor capable of running 64 software threads simultaneously

Programming

[edit]
  • sequential programming
  • parallel programming
  • multi-core programming - частный случай parallel programming
  • heavyweight concurrency - threads
  • lightweight concurrency - fibers, processes, actors - Haskell, Erlang, Scala(?)
  • Amdahl's Law -> Gustafson's Law


  • interleaved concurrency и просто concurrency

Properties of concurrent solutions:

  • deadlock-freedom property
  • starvation-freedom (sometimes called lockout-freedom) property
  • waiting property; fault-tolerance

Two kinds of communication occur naturally in concurrent systems:

  • Transient communication
  • Persistent communication


  • Mutual exclusion problem: Mutual exclusion requires persistent communication
  • Producer–consumer problem
  • Reader-writer problem


Java

[edit]

Thread:

  • interrupt; wait; notify; notifyAll;
  • join
  • sleep

C#

[edit]

Книги

[edit]
  • (2010) Professional Parallel Programming with C# - Master Parallel Extensions with .NET 4 (ISBN 0470495995)
  • (2010) Pro .NET 4 Parallel Programming in Csharp (ISBN 1430229675)